From: Andrew Cooper Date: Tue, 4 Mar 2014 10:15:47 +0000 (+0100) Subject: compiler: replace opencoded __attribute__((noreturn)) X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~5522 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/%22bookmarks://%22Dat/%22http:/www.example.com/cgi/%22https:/%22bookmarks:/%22Dat?a=commitdiff_plain;h=0a1082e8fd83ec648f5ddeb09b1b73e6865e675e;p=xen.git compiler: replace opencoded __attribute__((noreturn)) Make a formal define for noreturn in compiler.h, and fix up opencoded uses of __attribute__((noreturn)). This includes removing redundant uses with function definitions which have a public declaration. Signed-off-by: Andrew Cooper Acked-by: Ian Campbell Acked-by: Tim Deegan Reviewed-by: Jan Beulich Acked-by: Keir Fraser --- diff --git a/xen/arch/arm/early_printk.c b/xen/arch/arm/early_printk.c index 41938bbe60..2870a30c41 100644 --- a/xen/arch/arm/early_printk.c +++ b/xen/arch/arm/early_printk.c @@ -52,7 +52,7 @@ void __init early_printk(const char *fmt, ...) va_end(args); } -void __attribute__((noreturn)) __init +void __init early_panic(const char *fmt, ...) { va_list args; diff --git a/xen/arch/x86/efi/boot.c b/xen/arch/x86/efi/boot.c index 0dd935cd19..a26e0af766 100644 --- a/xen/arch/x86/efi/boot.c +++ b/xen/arch/x86/efi/boot.c @@ -183,7 +183,7 @@ static bool_t __init match_guid(const EFI_GUID *guid1, const EFI_GUID *guid2) !memcmp(guid1->Data4, guid2->Data4, sizeof(guid1->Data4)); } -static void __init __attribute__((__noreturn__)) blexit(const CHAR16 *str) +static void __init noreturn blexit(const CHAR16 *str) { if ( str ) PrintStr((CHAR16 *)str); @@ -762,7 +762,7 @@ static void __init relocate_trampoline(unsigned long phys) *(u16 *)(*trampoline_ptr + (long)trampoline_ptr) = phys >> 4; } -void EFIAPI __init __attribute__((__noreturn__)) +void EFIAPI __init noreturn efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable) { static EFI_GUID __initdata loaded_image_guid = LOADED_IMAGE_PROTOCOL; diff --git a/xen/arch/x86/shutdown.c b/xen/arch/x86/shutdown.c index 6eba2715ad..6143c40e36 100644 --- a/xen/arch/x86/shutdown.c +++ b/xen/arch/x86/shutdown.c @@ -85,7 +85,7 @@ static inline void kb_wait(void) break; } -static void __attribute__((noreturn)) __machine_halt(void *unused) +static void noreturn __machine_halt(void *unused) { local_irq_disable(); for ( ; ; ) diff --git a/xen/include/asm-arm/early_printk.h b/xen/include/asm-arm/early_printk.h index 707bbf7890..80471417af 100644 --- a/xen/include/asm-arm/early_printk.h +++ b/xen/include/asm-arm/early_printk.h @@ -26,7 +26,7 @@ void early_printk(const char *fmt, ...) __attribute__((format (printf, 1, 2))); -void early_panic(const char *fmt, ...) __attribute__((noreturn)) +void noreturn early_panic(const char *fmt, ...) __attribute__((format (printf, 1, 2))); #else @@ -35,7 +35,7 @@ static inline __attribute__((format (printf, 1, 2))) void early_printk(const char *fmt, ...) {} -static inline void __attribute__((noreturn)) +static inline void noreturn __attribute__((format (printf, 1, 2))) early_panic(const char *fmt, ...) {while(1);} diff --git a/xen/include/asm-x86/processor.h b/xen/include/asm-x86/processor.h index 4629b32073..4da545e554 100644 --- a/xen/include/asm-x86/processor.h +++ b/xen/include/asm-x86/processor.h @@ -550,7 +550,7 @@ DECLARE_TRAP_HANDLER(spurious_interrupt_bug); void trap_nop(void); void enable_nmis(void); -void __attribute__((noreturn)) do_nmi_crash(struct cpu_user_regs *regs); +void noreturn do_nmi_crash(struct cpu_user_regs *regs); void syscall_enter(void); void sysenter_entry(void); diff --git a/xen/include/xen/compiler.h b/xen/include/xen/compiler.h index 7d6805c415..c80398d9c7 100644 --- a/xen/include/xen/compiler.h +++ b/xen/include/xen/compiler.h @@ -14,6 +14,8 @@ #define always_inline __inline__ __attribute__ ((always_inline)) #define noinline __attribute__((noinline)) +#define noreturn __attribute__((noreturn)) + #if (!defined(__clang__) && (__GNUC__ == 4) && (__GNUC_MINOR__ < 5)) #define unreachable() do {} while (1) #else diff --git a/xen/include/xen/lib.h b/xen/include/xen/lib.h index 5b258fd876..0d1a5d3a07 100644 --- a/xen/include/xen/lib.h +++ b/xen/include/xen/lib.h @@ -8,7 +8,7 @@ #include #include -void __bug(char *file, int line) __attribute__((noreturn)); +void noreturn __bug(char *file, int line); void __warn(char *file, int line); #define BUG_ON(p) do { if (unlikely(p)) BUG(); } while (0) diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h index fb8bd365e7..00f0ebae6b 100644 --- a/xen/include/xen/sched.h +++ b/xen/include/xen/sched.h @@ -580,7 +580,7 @@ void __domain_crash(struct domain *d); * Mark current domain as crashed and synchronously deschedule from the local * processor. This function never returns. */ -void __domain_crash_synchronous(void) __attribute__((noreturn)); +void noreturn __domain_crash_synchronous(void); #define domain_crash_synchronous() do { \ printk("domain_crash_sync called from %s:%d\n", __FILE__, __LINE__); \ __domain_crash_synchronous(); \ @@ -591,7 +591,7 @@ void __domain_crash_synchronous(void) __attribute__((noreturn)); * the crash occured. If addr is 0, look up address from last extable * redirection. */ -void asm_domain_crash_synchronous(unsigned long addr) __attribute__((noreturn)); +void noreturn asm_domain_crash_synchronous(unsigned long addr); #define set_current_state(_s) do { current->state = (_s); } while (0) void scheduler_init(void);